SqlServer 游标逐行更新数据,根据上一行的数据来更新当前行

您所在的位置:网站首页 sqlserver 更新不为空的数据 SqlServer 游标逐行更新数据,根据上一行的数据来更新当前行

SqlServer 游标逐行更新数据,根据上一行的数据来更新当前行

2024-05-22 04:18| 来源: 网络整理| 查看: 265

工作中用到的记录一下,游标的详细定义及说明请百度

--游标格式化数据 DECLARE cursor_jxsmb CURSOR FOR --定义一个游标 SELECT F0 FROM dbo.JXSMB2019; --定于游标的数据源 OPEN cursor_jxsmb --打开游标 DECLARE @LAST NVARCHAR(4000),@THIS NVARCHAR(4000) --定义两个变量,用来保存上一行和当前行的数据 FETCH NEXT FROM cursor_jxsmb INTO @THIS --设置@this 为当前行的数据 WHILE @@FETCH_STATUS=0 --判断游标是否为读取失败,读取失败则为-1 代表最后一行 BEGIN IF LEN(@THIS)0 --判断当前读取行字段是否为空 BEGIN SET @LAST=@THIS --如果不为空则不更新,并且设置@last为当前行的数据 --PRINT @LAST END ELSE BEGIN --如果为空则更新当前行的数据为上一行 UPDATE JXSMB2019 SET F0=@LAST WHERE CURRENT OF cursor_jxsmb --更新数据,where 只更新当前游标所在行 --PRINT @LAST END FETCH NEXT FROM cursor_jxsmb INTO @THIS     --继续读取下一行数据 END CLOSE cursor_jxsmb --关闭游标 DEALLOCATE cursor_jxsmb --释放游标



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3